package com.testing.sunnycommon.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.testing.sunnycommon.model.SunnyCase;
import com.testing.sunnycommon.model.SunnyCaseVO;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

/**
 * @Classname SunnyCaseMapper
 * @Description 类型说明
 * @Date 2023/2/20 20:46
 * @Created by 特斯汀Roy
 */
@Mapper
public interface SunnyCaseMapper extends BaseMapper<SunnyCase> {

    @Select("select * from sunny_case")
    List<Map<String,Object>> getDatas();

    @Select("select * from sunny_case")
    List<SunnyCase> getCases();

    @Select("select * from sunny_case where module_id=#{moduleId}")
    List<SunnyCase> getCasesInModule(@Param("moduleId")Long moduleId);

    @Select("select stepName,caseName,param1,param2 from sunny_case where step_name=#{stepName}")
    List<SunnyCaseVO> getCasesByStep(@Param("stepName") String stepName);

    @Insert("insert into sunny_case values(#{id},#{moduleId},#{parentId},#{sortId},#{caseName},#{stepName},#{keywords},#{param1},#{param2},#{author})")
    int addCase(SunnyCase sunnyCase);

    @Update("update sunny_case set author=#{author}")
    int upDateAuthor(@Param("author") String author);

    @Delete("delete from sunny_case where id=#{id}")
    int deleteCase(@Param("id") Long id);

    /******************************XML映射文件中配置sql语句************************************/
    SunnyCase getCaseById(Long id);
    //批量删除数组中的元素，id等于ids中的任意一个id号的数据，删除掉。
    int deleteCases(List<Long> ids);

    //根据param2来查询用例，如果传递的param2是空值或者null，查询所有的用例。
    List<SunnyCase> getCaseByParam2(@Param("param2") String param2);

    //只允许更新参数
    int updateCaseOnlyParam(SunnyCase sunnyCase);

    int updateCaseBatch(List<SunnyCase> sunnyCases);

    int updateCase(SunnyCase sunnyCase);


}
